The invention relates to a multi-port bridge for a local area network. More particularly, the invention relates to a port within a multi-port bridge for a local area network having a buffer for storing routing information relating to data packets received in the port.
Nodes of a local area network (LAN) are typically interconnected by a shared transmission medium. The amount of data traffic that the shared transmission medium can accommodate, however, is limited. For example, only one node at a time can successfully transmit data to another node over the shared transmission medium. If two or more nodes simultaneously attempt to transmit data, a data collision occurs, which tends to corrupt the data being transmitted. Thus, nodes that share a transmission medium are considered to be in a same collision domain.
A multi-port bridge allows simultaneous communication between nodes of the LAN by segmenting the LAN into multiple collision domains (also referred to as network segments or LAN segments), each segment having a corresponding transmission medium.
FIG. 1 illustrates a conventional local area network including a multi-port bridge 10. The multi-port bridge 10 has eight ports A-H, though the number of ports can vary. Each port A-H is connected to a segment 11-18 of the LAN. Each segment 11-18 typically includes one or more nodes 19-34, such as a workstation, a personal computer, a data terminal, a file server, a printer, a facsimile, a scanner or other conventional digital device. Each of the nodes 19-34 has an associated node address (also referred to as a medium access control (MAC) address) which uniquely identifies the node. The nodes 19-34 are configured to send data, one to another, in the form of discrete data packets.
When the LAN operates according to Ethernet standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard, data is communicated in the form of discrete packets. FIG. 2 illustrates a conventional IEEE 802.3 data packet 40. The data packet 40 includes an eight byte long pre-amble 41 which is generally utilized for synchronizing a receiver to the data packet 40. The pre-amble 41 includes seven bytes of pre-amble and one byte of start-of-frame. Following the pre-amble 41, the data packet 40 includes a six-byte-long destination address 42, which is the node address of a node which is an intended recipient for the data packet 40. Next, the data packet 40 includes a six-byte-long source address 43, which is the node address of a node which originated the data packet 40. Following the source address 43 is a two-byte length field 44. Following the length field 44 is a data field 45. The data field 45 can be up to 1500 bytes long. Finally, the data packet 40 includes a two-byte frame check field 46 which allows a recipient of the data packet 40 to determine whether an error has occurred during transmission of the data packet 40.
When a node (source node) sends data to another node (destination node) located on its same segment of the LAN (intra-segment communication), the data is communicated directly between the nodes without intervention by the multi-port bridge 10 and is known as an intra-segment packet. Therefore, when the multi-port bridge 10 receives an intra-segment packet, the multi-port bridge 10 does not bridge the packet (the packet is filtered). When a node (source node) sends a data packet to another node (destination node) located on a different segment (inter-segment communication), the multi-port bridge 10 appropriately forwards the data packet to the destination node.
More particularly, the multi-port bridge 10 (FIG. 1) receives each data packet 40 (FIG. 2) and must determine whether the data packet 40 is for intra-segment communication or inter-segment communication, and if the data packet 40 is for inter-segment communication, the multi-port bridge 10 must determine to which port (destination port) the data packet 40 is to be directed based upon the destination address 42 contained in the data packet 40. This can be accomplished by utilizing a look-up table which associates the destination address 42 included in the packet 40 to a port of the multi-port bridge 10. Conventionally, the look-up table is constructed by executing a learning cycle and, then, a look-up cycle for each received data packet 40. During the learning cycle, the source address 43 from the data packet 40 is stored in the table in association with the identification of the source port. Then, during the look-up cycle, the destination address 42 is utilized to look-up data stored during the learning cycle for a prior packet so as to identify the appropriate destination port for the packet 40.
Problems can arise, however, when the capabilities of the multi-port bridge 10 are exceeded by network demand. When data packets 40 are received by the multi-port bridge 10 at a rate that is higher than the rate at which the multi-port bridge 10 can appropriately perform a learning cycle and a look-up cycle for each packet 40 and, then, forward the packet, the multi-port bridge 10 becomes a source of network congestion. This problem is exacerbated as network users place increasing demands on the network.
Therefore, what is needed is improved technique for increasing the data packet handling capacity in a multi-port bridge for a local area network.
The invention is a port within a multi-port bridge for a local area network (LAN) having a buffer (referred to herein as a xe2x80x9cvector bufferxe2x80x9d) for storing routing information (referred to herein as xe2x80x9creceive vectorsxe2x80x9d) relating to data packets received in the port. The multi-port bridge includes a plurality of ports, each port for receiving data packets from, and transmitting data packets to, an associated segment of the LAN. The ports are coupled to each other via a communication bus included in the multi-port bridge. In the preferred embodiment, the communication bus includes two independently operable portions (referred to herein as a xe2x80x9cdata busxe2x80x9d and a xe2x80x9clook-up busxe2x80x9d) which communicate data packets and look-up information in parallel. A look-up table is coupled to the look-up bus for correlating destination node addresses from packets received by the multi-port bridge to an appropriate port (destination port) of the multi-port bridge to which the packet is to be routed. In addition, a packet buffer is coupled to the data bus for temporarily storing data packets being communicated among the ports of the multi-port bridge.
When a packet is received by a port (source port) from its associated segment of the LAN, the packet is received into a receive buffer of the port. The receive buffer can preferably store more than one data packet. A destination and source address included in the packet are utilized to update the look-up table (referred to herein as a xe2x80x9clearning cyclexe2x80x9d) and to identify an appropriate destination port for the packet (referred to herein as a xe2x80x9clook-up cyclexe2x80x9d). The learning and look-up cycles are preferably performed by the source port communicating with the look-up table via the look-up bus. The vector buffer stores a receive vector for the packet which indicates whether the look-up table has been updated in response to the packet and whether the appropriate destination port for the packet has been identified. Once the destination port has been identified, the identification of the destination port is stored in the receive vector for the packet and the packet is ready for communication to the destination port via the data bus.
While a data packet is being communicated to the appropriate destination port for the packet, the appropriate destination port for one or more additional data packets received in the port subsequently can be identified. Accordingly, an advantage of the present invention is that operations for multiple data packets received by the port can be performed simultaneously (in parallel), thus, increasing the packet handling capacity of the multi-port bridge.
In accordance with an aspect of the present invention, a method of directing data packets through a multi-port bridge for a local area network (LAN) includes steps of: receiving a first data packet in a receive buffer of a port of the multi-port bridge; and initializing a vector for the first data packet in a vector buffer of the port wherein the vector is for storing information relating to the routing of the first data packet through the multi-port bridge.
In accordance with another aspect of the present invention, a multi-port bridge for interconnecting a plurality of segments of a LAN includes a port, where the port includes: a receive buffer to temporarily store a plurality of data packets received by the port from a segment of the LAN; and a vector buffer to store a vector corresponding to each data packet stored by the receive buffer wherein each vector is to store information relating to the routing of the corresponding data packet through the multi-port bridge.
In accordance with a further aspect of the present invention, an apparatus for interconnecting a plurality of segments of a LAN, the apparatus includes a port, where the port includes: first storage means for storing a plurality of data packets received from a segment of the LAN; and second storage means for storing information relating to the routing of the corresponding data packet through the apparatus.
In accordance with a still further aspect of the present invention, a multi-port bridge for interconnecting a plurality of segments of a LAN, each segment including one or more nodes, includes: first port coupled to a first segment of the LAN wherein the first port includes a receive buffer for storing a plurality of data packets received from the corresponding segment of the LAN wherein each data packet includes a node address of a destination node for the data packet and a vector buffer for storing a vector corresponding to each data packet stored by the receive vector wherein each vector is for storing an identification of a destination port for the corresponding data packet; a second port coupled to a second segment of the LAN; and a data bus coupled to the first port and to the second port for communicating the data packets.